#include<iostream>
#include<pthread.h>

using namespace std;

#define NUM_THREAD 5

// 线程函数
void *say_thread(void* i)
{
    int tid = *((int *)i);
    cout << "thread " << i << " is run" << endl;
};

int main()
{
    // 定义线程的 id 变量，多个变量使用数组
    pthread_t tids[NUM_THREAD];
    int index[NUM_THREAD];
    for (int i = 0; i < NUM_THREAD; i++)  
    {
        index[i] = i;
        //参数依次是：创建的线程id，线程参数，调用的函数，传入的函数参数
        int ret = pthread_create(&tids[i], NULL, say_thread, (void *)&(index[i]));
        if(ret != 0)
        {
            cout << "pthread_create error : error code = " << ret << endl;
        }
    }
    //等各个线程退出后，进程才结束，否则进程强制结束了，线程可能还没反应过来；
    pthread_exit(NULL);
}